import java.lang.reflect.Array;

public class MyArray3<T> {
    public T[]array;

    public MyArray3(){

    }
    /**
     * 通过反射创建，指定类型的数组
     * 使用 clazz
     * 使用 capacity
     */
    public MyArray3(Class<T>clazz,int capacity){
        array=(T[]) Array.newInstance(clazz,capacity);
    }

    public T getPos(int pos){
        return this.array[pos];
    }
    public void setVal(int pos,T val){
        this.array[pos]=val;

    }
    public T[]getArray(){
        return array;
    }

    public static void main(String[] args) {
        MyArray3<Integer> myArray3=new MyArray3<>(Integer.class,10);
        Integer[] integers=myArray3.getArray();
    }
    //泛型的上界限
    //在定义泛型类型的时候，有时候需要对传入的类型变量做一定的约束，可以通过类型边界来约束
    //
}
